#pragma once
#include "../Common.h"
#include <json/json.h>

class JsonSetting
{
public:
    JsonSetting(std::string JsonPath);
    ~JsonSetting();

    static std::string GetJsonString(const Json::Value* const& JsonData, std::string Key);
    static int GetJsonInt(const Json::Value* const&, std::string Key);
    static float GetJsonFloat(const Json::Value* const&, std::string Key);
    static bool GetJsonBool(const Json::Value* const&, std::string Key);

    static std::string GetJsonObjectString(const Json::Value* const&, std::string Object, std::string Key);
    static int GetJsonObjectInt(const Json::Value* const&, std::string Object, std::string Key);
    static float GetJsonObjectFloat(const Json::Value* const&, std::string Object, std::string Key);
    static bool GetJsonObjectBool(const Json::Value* const&, std::string Object, std::string Key);
    
private:
    
    Json::Value JsonValue;
    Json::Reader JsonReader;

public:
    std::string WriteFileName = "";
    Json::Value TimeLineJsonData;
    Json::Value VideosJsonData;
    Json::Value AudiosJsonData;
    Json::Value VideoEffectJsonData;
    Json::Value EffectJsonData;
    Json::Value CaptionJsonData;
};
